/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.latesis.prueba;

import com.latesis.bean.AlertaBean;
import com.latesis.bean.AlertaEnviadaBean;
import com.latesis.bean.AsignacionServicioBean;
import com.latesis.bean.ChoferBean;
import com.latesis.bean.ClienteBean;
import com.latesis.bean.DetalleServicioBean;
import com.latesis.bean.DetalleTarifaBean;
import com.latesis.bean.DireccionClienteBean;
import com.latesis.bean.EstadoBean;
import com.latesis.bean.GrupoBean;
import com.latesis.bean.MarcacionBean;
import com.latesis.bean.MensajeBean;
import com.latesis.bean.MovilBean;
import com.latesis.bean.OperadorBean;
import com.latesis.bean.PropietarioBean;
import com.latesis.bean.PuntoGeocercaBean;
import com.latesis.bean.ServicioBean;
import com.latesis.bean.TarifaBean;
import com.latesis.bean.TrackingBean;
import com.latesis.bean.ZonaBean;
import com.latesis.dao.AlertaDAO;
import com.latesis.dao.AlertaEnviadaDAO;
import com.latesis.dao.AsignacionServicioDAO;
import com.latesis.dao.ChoferDAO;
import com.latesis.dao.ClienteDAO;
import com.latesis.dao.DetalleServicioDAO;
import com.latesis.dao.DetalleTarifaDAO;
import com.latesis.dao.DireccionClienteDAO;
import com.latesis.dao.EstadoDAO;
import com.latesis.dao.GrupoDAO;
import com.latesis.dao.MarcacionDAO;
import com.latesis.dao.MensajeDAO;
import com.latesis.dao.MovilDAO;
import com.latesis.dao.OperadorDAO;
import com.latesis.dao.PropietarioDAO;
import com.latesis.dao.PuntoGeocercaDAO;
import com.latesis.dao.ServicioDAO;
import com.latesis.dao.TarifaDAO;
import com.latesis.dao.TrackingDAO;
import com.latesis.dao.ZonaDAO;
import com.latesis.util.Constantes;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;


/**
 *
 * @author user
 */
public class PruebaService {
    private static final Logger logger = Logger.getLogger(PruebaService.class);
    
    private MovilDAO movilDAO;
    private ChoferDAO choferDAO;
    private PropietarioDAO propietarioDAO;
    private TrackingDAO trackingDAO;
    private GrupoDAO grupoDAO;
    private MensajeDAO mensajeDAO;
    private AlertaDAO alertaDAO;
    private AlertaEnviadaDAO alertaEnviadaDAO;
    private ZonaDAO zonaDAO;
    private ClienteDAO clienteDAO;
    private DireccionClienteDAO direccionClienteDAO;
    private EstadoDAO estadoDAO;
    private ServicioDAO servicioDAO;
    private DetalleServicioDAO detalleServicioDAO;
    private OperadorDAO operadorDAO;
    private TarifaDAO tarifaDAO;
    private DetalleTarifaDAO detalleTarifaDAO;
    private PuntoGeocercaDAO puntoGeocercaDAO;
    private MarcacionDAO marcacionDAO;
    private AsignacionServicioDAO asignacionServicioDAO;
    
    public String saludar(){
        return "I AM ALIVE!!!";        
    }
    
    @Transactional(propagation=Propagation.REQUIRED)
    public void probarDAOs(){
        logger.info(">>  CREAR PROPIETARIO Y LISTARLOS");        
            PropietarioBean  prop=new PropietarioBean();
            prop.setNombres("Don Dueño");
            prop.setApellidoPaterno("Muy");
            prop.setApellidoMaterno("Platudo");
            prop.setCorreo("dueño@macpato.com");
            prop.setDireccion("bell air");
            prop.setEstado(Constantes.ESTADO_ACTIVO);
            prop.setFechaNacimiento(new Date());
            prop.setMoviles(new ArrayList<MovilBean>());
            prop.setNumeroDocumento("12341234123");
            prop.setTipoDocumento(Constantes.TIPO_DOCUMENTO_DNI);
            prop.setTelefono("3555555");
            prop.setSexo(Constantes.SEXO_MASCULINO);
            propietarioDAO.guardar(prop);

            List<PropietarioBean> lstPropietarios=propietarioDAO.buscarTodos();
            for(PropietarioBean bean:lstPropietarios){
                logger.info(">>  propietario id: "+bean.getId());                
            }  
        
        //REGISTRAR MOVIL
            logger.info("\n  >>  REGISTRAR MOVIL");
            final MovilBean movil1=new MovilBean();
            movil1.setCodigo("mov1");
            movil1.setPlaca("ELT-AXI");
            movil1.setColor("NEGRO");
            movil1.setMarca("KIA");
            movil1.setModelo("RIO 5");
            movil1.setEstado(Constantes.ESTADO_ACTIVO);
            
            movil1.getFotosMovil().add("C://foto1");
            movil1.getFotosMovil().add("C://foto2");
                        
            movilDAO.guardar(movil1);
        
        //ASIGNAR MOVIL AL PROPIETARIO
            logger.info("\n  >>  ASIGNAR MOVIL AL PROPIETARIO");
            prop.getMoviles().add(movil1);
            movil1.setPropietario(prop);
            
            //propietarioDAO.guardar(prop);
            movilDAO.guardar(movil1);
            
        //LISTAR LAS MOVILES DE UN PROPIETARIO
            logger.info("\n  >>  LISTAR LAS MOVILES DE UN PROPIETARIO");
            
            lstPropietarios=propietarioDAO.buscarTodos();
            for(PropietarioBean bean:lstPropietarios){
            logger.info("propietario id: "+bean.getId());
                logger.info("moviles: "+bean.getMoviles().size());
                for(MovilBean mbean:bean.getMoviles()){
                    logger.info(" - "+mbean.getId()+" , "+mbean.getCodigo());
                    for(String ruta:mbean.getFotosMovil()){
                        logger.info("    * r:"+ruta);
                    }
                }
              }

            
            
        //REGISTRAR CHOFER
            logger.info("\n  >>  REGISTRAR CHOFER");            
            final ChoferBean chofer=new ChoferBean();
            chofer.setCodigo("C1");
            chofer.setNombres("Toreto");
            chofer.setApellidoPaterno("Meteoro");
            chofer.setApellidoMaterno("Shumacher");
            chofer.setLogin("C1");
            chofer.setPassword("1234");
            chofer.setEstado(Constantes.ESTADO_ACTIVO);
            chofer.setTipoDocumento(Constantes.TIPO_DOCUMENTO_DNI);
            chofer.setNumeroDocumento("12345678");
            chofer.setFechaNacimiento(new Date());
            chofer.setFechaIngreso(new Date());
            chofer.setSexo(Constantes.SEXO_MASCULINO);
            choferDAO.guardar(chofer);
            
        //ASIGNAR MOVIL AL CHOFER
            logger.info("\n  >>  ASIGNAR MOVIL AL CHOFER");
            chofer.getMoviles().add(movil1);
            choferDAO.guardar(chofer);
            movil1.getChoferes().add(chofer);
            movilDAO.guardar(movil1);
            //no es necesario registrarlo 2 veces, ya que el segundo insert se hace cuando se cierra la sesión, se comitea, pero para que funcione bien el segundo select es mejor hacerlo asi
            
        //LISTAR CHOFERES DE MOVIL                                                
            logger.info("\n  >>  LISTAR CHOFERES DE MOVIL");
            MovilBean movilRecuperada=movilDAO.buscar(movil1);
            logger.info("id movil: "+movilRecuperada.getId());
            logger.info("movilRecuperada.getChoferes().size(): "+movilRecuperada.getChoferes().size());
            for(ChoferBean choferMovil:movilRecuperada.getChoferes()){
                logger.info(" - c: "+choferMovil.getNombres());
            }
            
        
        //REGISTRAR MARCACION     
             logger.info("\n  >>  REGISTRAR MARCACION");             
             MarcacionBean marcacion1=new MarcacionBean();
             marcacion1.setChofer(chofer);
             marcacion1.setMovil(movil1);
             marcacion1.setFechaIngreso(new Date());
             marcacion1.setEstadoAtencion(Constantes.ESTADO_ATENCION_LIBRE);
             marcacion1.setTelefono("112233412");
             
             marcacionDAO.guardar(marcacion1);
             
             movil1.setUltimaMarcacion(marcacion1);
             movil1.getMarcaciones().add(marcacion1);
             movilDAO.guardar(movil1);
             
             
             chofer.setUltimaMarcacion(marcacion1);
             chofer.getMarcaciones().add(marcacion1);
             choferDAO.guardar(chofer);
        
        //LISTAR LAS MARCACIONES DE UNA MOVIL             
            logger.info("\n  >>  LISTAR LAS MARCACIONES DE UNA MOVIL");
            movilRecuperada=movilDAO.buscar(movil1);
            logger.info("id movil: "+movilRecuperada.getId());
            for(MarcacionBean marcacionMovil:movilRecuperada.getMarcaciones()){
                logger.info(" - m: "+marcacionMovil.getId());
            }
                 
        
        //LISTAR LAS MARCACIONES DE UN CHOFER             
            logger.info("\n  >>  LISTAR LAS MARCACIONES DE UN CHOFER");
            ChoferBean choferRecuperado=choferDAO.buscar(chofer);
            logger.info("id chofer: "+choferRecuperado.getId());
            for(MarcacionBean marcacionMovil:choferRecuperado.getMarcaciones()){
                logger.info(" - m: "+marcacionMovil.getId());
            }
                  
        //REGISTRAR TRACKING
             logger.info("\n  >>  REGISTRAR TRACKING");
             TrackingBean tracking1=new TrackingBean();
             tracking1.setMovil(movil1);
             tracking1.setLatitud(10d);
             tracking1.setLongitud(20d);
             tracking1.setFechaRegistro(new Date());
             trackingDAO.guardar(tracking1);
             
             TrackingBean tracking2=new TrackingBean();
             tracking2.setMovil(movil1);
             tracking2.setLatitud(20d);
             tracking2.setLongitud(30d);
             tracking2.setFechaRegistro(new Date());
             trackingDAO.guardar(tracking2);
             
        //LISTAR EL TRACKING DE UNA MOVIL
            logger.info("\n  >>  LISTAR EL TRACKING DE UNA MOVIL");
            movilRecuperada=movilDAO.buscar(movil1);
            logger.info("id movil: "+movilRecuperada.getId());
            for(TrackingBean trackingMovil:movilRecuperada.getTracking()){
                logger.info(" - t: "+trackingMovil.getId());
            }
                   
          //REGISTRAR ULTIMA POSICION TRACKING
             logger.info("\n  >>  REGISTRAR  ULTIMA POSICION TRACKING");
             movil1.setUltimoTracking(tracking2);
             movilDAO.guardar(movil1);
             
          //OBTENER ULTIMA POSICION DE UNA MOVIL             
             logger.info("\n  >>  OBTENER ULTIMA POSICION DE UNA MOVIL");
             movilRecuperada=movilDAO.buscar(movil1);
             logger.info("id movil: "+movilRecuperada.getId());
             logger.info("ultimo tracking: "+movilRecuperada.getUltimoTracking().getId());                    
                
             
         //REGISTRAR GRUPO DE CHOFERES
             logger.info("\n  >>  REGISTRAR GRUPO DE CHOFERES");
             GrupoBean grupo1=new GrupoBean();
             grupo1.setNombre("Grupo 1");
             grupo1.setDescripcion("este es el grupo 1");
             grupo1.setFechaCreacion(new Date());
             grupo1.setTipo(Constantes.TIPO_GRUPO_CHOFERES);
             grupo1.setEstado(Constantes.ESTADO_ACTIVO);
             ArrayList<ChoferBean> choferes=new ArrayList<ChoferBean>();
             choferes.add(chofer);
             grupo1.setChoferes(choferes);
             
             grupoDAO.guardar(grupo1);
             
             //--
             chofer.getGrupos().add(grupo1);
             choferDAO.guardar(chofer);
             //--
             
         //OBTENER GRUPOS DE UN CHOFER             
             logger.info("\n  >>  OBTENER GRUPOS DE UN CHOFER");
             choferRecuperado=choferDAO.buscar(chofer);
             logger.info("id chofer: "+choferRecuperado.getId());
             for(GrupoBean grupoChofer:choferRecuperado.getGrupos()){
                 logger.info(" - g: "+grupoChofer.getId());
             }                   

          //REGISTRAR GRUPOS DE MOVILES
             logger.info("\n  >>  REGISTRAR GRUPOS DE MOVILES");
             GrupoBean grupo2=new GrupoBean();
             grupo2.setNombre("Grupo 2");
             grupo2.setDescripcion("este es el grupo 2");
             grupo2.setFechaCreacion(new Date());
             grupo2.setTipo(Constantes.TIPO_GRUPO_MOVILES);
             grupo2.setEstado(Constantes.ESTADO_ACTIVO);
             ArrayList<MovilBean> moviles=new ArrayList<MovilBean>();
             moviles.add(movil1);
             grupo2.setMoviles(moviles);
             
             grupoDAO.guardar(grupo2);
             
             //--
             movil1.getGrupos().add(grupo2);
             movilDAO.guardar(movil1);
             //--
             
             
         //OBTENER GRUPOS DE UNA MOVIL                          
             logger.info("\n  >>  OBTENER GRUPOS DE UNA MOVIL");
             movilRecuperada=movilDAO.buscar(movil1);
             logger.info("id movil: "+movilRecuperada.getId());
             for(GrupoBean grupoMovil:movilRecuperada.getGrupos()){
                 logger.info(" - g: "+grupoMovil.getId());
             }                  
             
         //REGISTRAR MENSAJE
             logger.info("\n  >>  REGISTRAR MENSAJE");
             MensajeBean mensaje1=new MensajeBean();
             mensaje1.setTitulo("El mensaje");
             mensaje1.setTexto("Pague su plan de datos");   
             mensaje1.setFechaCreacion(new Date());
             mensaje1.setEstado(Constantes.ESTADO_ACTIVO);
             ArrayList<ChoferBean> choferesM=new ArrayList<ChoferBean>();
             choferesM.add(chofer);
             mensaje1.setChoferes(choferesM);
             
             mensajeDAO.guardar(mensaje1);
             
             //--
             chofer.getMensajes().add(mensaje1);
             choferDAO.guardar(chofer);
             //--
             
         //OBTENER MENSAJES DE UN CHOFER             
             logger.info("\n  >>  OBTENER MENSAJES DE UN CHOFER");
             choferRecuperado=choferDAO.buscar(chofer);
             logger.info("id chofer: "+choferRecuperado.getId());
             for(MensajeBean mensajeChofer:choferRecuperado.getMensajes()){
                 logger.info(" - m: "+mensajeChofer.getId()+ " : "+mensajeChofer.getTitulo());
             }                   
                  
         //REGISTRAR TIPO ALERTA
             logger.info("\n  >>  REGISTRAR TIPO ALERTA");
             AlertaBean tipoAlerta1=new AlertaBean();
             tipoAlerta1.setCodigo("101");
             tipoAlerta1.setNombre("PROBLEMA MECANICO");
             tipoAlerta1.setImportancia(1);
             tipoAlerta1.setEstado(Constantes.ESTADO_ACTIVO);
             alertaDAO.guardar(tipoAlerta1);
             
             AlertaBean tipoAlerta2=new AlertaBean();
             tipoAlerta2.setCodigo("102");
             tipoAlerta2.setNombre("ROBO");
             tipoAlerta2.setImportancia(2);
             tipoAlerta2.setEstado(Constantes.ESTADO_ACTIVO);
             alertaDAO.guardar(tipoAlerta2);             
             
         //REGISTRAR ALERTA
             logger.info("\n  >>  REGISTRAR ALERTA");
             AlertaEnviadaBean alerta1=new AlertaEnviadaBean();
             alerta1.setEstadoAlerta(Constantes.ESTADO_ALERTA_PENDIENTE);
             alerta1.setFechaEnvio(new Date());
             alerta1.setAlerta(tipoAlerta1);
             alerta1.setMovil(movil1);
             alerta1.setChofer(chofer);
             alertaEnviadaDAO.guardar(alerta1);
             
         //OBTENER ALERTAS DE UN CHOFER             
             logger.info("\n  >>  OBTENER ALERTAS DE UN CHOFER");
             choferRecuperado=choferDAO.buscar(chofer);
             logger.info("id chofer: "+choferRecuperado.getId());
             for(AlertaEnviadaBean alertaChofer:choferRecuperado.getAlertasEnviadas()){
                 logger.info(" - a: "+alertaChofer.getId()+ " : "+alertaChofer.getAlerta().getNombre());
             }                   
                                                       
        //OBTENER GRUPOS DE UNA MOVIL       
             logger.info("\n  >>  OBTENER GRUPOS DE UNA MOVIL");
             movilRecuperada=movilDAO.buscar(movil1);
             logger.info("id movil: "+movilRecuperada.getId());
             for(AlertaEnviadaBean alertaMovil:movilRecuperada.getAlertasEnviadas()){
                 logger.info(" - a: "+alertaMovil.getId()+ " : "+alertaMovil.getAlerta().getNombre());
             }                            
             
         //REGISTRAR ZONA
             logger.info("\n  >>  REGISTRAR ZONA");
             final ZonaBean zona1=new ZonaBean();
             zona1.setNombre("Santa María");
             zona1.setEstado(Constantes.ESTADO_ACTIVO);
             zonaDAO.guardar(zona1);
             
             final ZonaBean zona2=new ZonaBean();
             zona2.setNombre("California");
             zona2.setEstado(Constantes.ESTADO_ACTIVO);
             zonaDAO.guardar(zona2);
             
         //REGISTRAR OPERADOR
             logger.info("\n  >>  REGISTRAR OPERADOR");
             final OperadorBean operador1=new OperadorBean();
             operador1.setNombres("Karl");
             operador1.setApellidoPaterno("Nixon");
             operador1.setApellidoMaterno("Walker");
             
             operadorDAO.guardar(operador1);
             
         //REGISTRAR CLIENTE
             logger.info("\n  >>  REGISTRAR CLIENTE");
             final ClienteBean cliente1=new ClienteBean();
             cliente1.setNombres("Sheldon");
             cliente1.setApellidoPaterno("Cooper");
             cliente1.setApellidoMaterno("Lee");
             cliente1.setTipoCliente(Constantes.TIPO_CLIENTE_PERSONA);
             cliente1.setEstado(Constantes.ESTADO_ACTIVO);
             cliente1.setSexo(Constantes.SEXO_MASCULINO);
             cliente1.getTelefonos().add("1231231");
             
             clienteDAO.guardar(cliente1);
                         
         //REGISTRAR DIRECCION    
             logger.info("\n  >>  REGISTRAR DIRECCION");
             final DireccionClienteBean direccion1=new DireccionClienteBean();
             direccion1.setDireccion("la punta del cerro");
             direccion1.setReferencia("pasando la calavera pidiendo agua");
             direccion1.setEstado(Constantes.ESTADO_ACTIVO);
             direccion1.setLatitud(20d);
             direccion1.setLongitud(25d);
             direccion1.setTipoGPS(Constantes.TIPO_GPS_DIRECCION_WEB);
             direccion1.setZona(zona1);
             direccion1.setCliente(cliente1);
             
             direccionClienteDAO.guardar(direccion1);
             
             
          //OBTENER DIRECCIONES DE UN CLIENTE
             
              logger.info("\n  >>  OBTENER DIRECCIONES DE UN CLIENTE");
              ClienteBean clienteRecuperado=clienteDAO.buscar(cliente1);
              logger.info("cliente movil: "+clienteRecuperado.getId());
              for(DireccionClienteBean direccionCliente:clienteRecuperado.getDirecciones()){
                  logger.info(" - d: "+direccionCliente.getId()+ " : "+direccionCliente.getDireccion()+"... z:"+direccionCliente.getZona().getNombre());
              }                  
             
          //REGISTRAR ESTADO    
             logger.info("\n  >>  REGISTRAR ESTADO");
             final EstadoBean estado1=new EstadoBean();             
             estado1.setCodigo("104");
             estado1.setNombre("OK");
             estado1.setTipo(Constantes.TIPO_ESTADO_ATENCION);
             estado1.setAlerta(Boolean.TRUE);
             estado1.setEstado(Constantes.ESTADO_ACTIVO);
             estado1.setMovil(Boolean.TRUE);
             estado1.setWeb(Boolean.TRUE);
             estado1.setServicioAsignado(Boolean.TRUE);
             estado1.setServicioLibre(Boolean.FALSE);             
             
             estadoDAO.guardar(estado1);
             
             final EstadoBean estado2=new EstadoBean();             
             estado2.setCodigo("105");
             estado2.setNombre("NO");
             estado2.setTipo(Constantes.TIPO_ESTADO_ATENCION);
             estado2.setAlerta(Boolean.TRUE);
             estado2.setEstado(Constantes.ESTADO_ACTIVO);
             estado2.setMovil(Boolean.TRUE);
             estado2.setWeb(Boolean.TRUE);
             estado2.setServicioAsignado(Boolean.TRUE);
             estado2.setServicioLibre(Boolean.FALSE);             
             
             estadoDAO.guardar(estado2);
             
             
             //----------------------MAS ESTADOS---------------------
             final EstadoBean estado3=new EstadoBean();             
             estado3.setCodigo("301");
             estado3.setNombre("EN CAMINO");
             estado3.setTipo(Constantes.TIPO_ESTADO_ATENCION);
             estado3.setAlerta(Boolean.FALSE);
             estado3.setEstado(Constantes.ESTADO_ACTIVO);
             estado3.setMovil(Boolean.TRUE);
             estado3.setWeb(Boolean.TRUE);
             estado3.setServicioAsignado(Boolean.TRUE);
             estado3.setServicioLibre(Boolean.FALSE);             
             
             estadoDAO.guardar(estado3);
             
             
             final EstadoBean estado4=new EstadoBean();             
             estado4.setCodigo("302");
             estado4.setNombre("SUBE PASAJERO");
             estado4.setTipo(Constantes.TIPO_ESTADO_ATENCION);
             estado4.setAlerta(Boolean.FALSE);
             estado4.setEstado(Constantes.ESTADO_ACTIVO);
             estado4.setMovil(Boolean.TRUE);
             estado4.setWeb(Boolean.TRUE);
             estado4.setServicioAsignado(Boolean.TRUE);
             estado4.setServicioLibre(Boolean.FALSE);             
             
             estadoDAO.guardar(estado4);
             
             final EstadoBean estado5=new EstadoBean();             
             estado5.setCodigo("401");
             estado5.setNombre("SERVICIO TERMINADO");
             estado5.setTipo(Constantes.TIPO_ESTADO_FINALIZACION_COMPLETO);
             estado5.setAlerta(Boolean.FALSE);
             estado5.setEstado(Constantes.ESTADO_ACTIVO);
             estado5.setMovil(Boolean.TRUE);
             estado5.setWeb(Boolean.TRUE);
             estado5.setServicioAsignado(Boolean.TRUE);
             estado5.setServicioLibre(Boolean.TRUE);             
             
             estadoDAO.guardar(estado5);
             
             final EstadoBean estado6=new EstadoBean();             
             estado6.setCodigo("501");
             estado6.setNombre("PASAJERO SE TIRO DEL TAXI");
             estado6.setTipo(Constantes.TIPO_ESTADO_FINALIZACION_INCOMPLETO);
             estado6.setAlerta(Boolean.TRUE);
             estado6.setEstado(Constantes.ESTADO_ACTIVO);
             estado6.setMovil(Boolean.TRUE);
             estado6.setWeb(Boolean.TRUE);
             estado6.setServicioAsignado(Boolean.TRUE);
             estado6.setServicioLibre(Boolean.TRUE);             
             
             estadoDAO.guardar(estado6);
             
             
             //SERVICIO LIBRE
             final EstadoBean estado7=new EstadoBean();             
             estado7.setCodigo("303");
             estado7.setNombre("PROBLEMAS CON EL TRAFICO");
             estado7.setTipo(Constantes.TIPO_ESTADO_ATENCION);
             estado7.setAlerta(Boolean.FALSE);
             estado7.setEstado(Constantes.ESTADO_ACTIVO);
             estado7.setMovil(Boolean.TRUE);
             estado7.setWeb(Boolean.TRUE);
             estado7.setServicioAsignado(Boolean.FALSE);
             estado7.setServicioLibre(Boolean.TRUE);             
             
             estadoDAO.guardar(estado7);
             
             //------------------------------------------------------
             
             //REGISTRAR SERVICIO    
             logger.info("\n  >>  REGISTRAR SERVICIO");
             final ServicioBean servicio1=new ServicioBean();
             servicio1.setChofer(chofer);
             servicio1.setMovil(movil1);
             servicio1.setCliente(cliente1);
             servicio1.setDireccion(direccion1);
             servicio1.setUltimoEstadoServicio(estado2);
             servicio1.setFechaRegistro(new Date());
             servicio1.setFinalizado(Boolean.FALSE);
             servicio1.setTipo(Constantes.TIPO_SERVICIO_ASIGNADO);
             servicio1.setNecesitaAtencion(Boolean.FALSE);
             servicio1.setObservacion("Primer Servicio");
             servicio1.setOperador(operador1);
             
             servicioDAO.guardar(servicio1);
             
             
             /*
             //REGISTRAR SERVICIO ASIGNADO A UN GRUPO
             logger.info("\n  >>  REGISTRAR SERVICIO ASIGNADO A UN GRUPO");
             final ServicioBean servicio2=new ServicioBean();
             //servicio2.setGrupoAsignacion(grupo1);
             servicio2.setCliente(cliente1);
             servicio2.setDireccion(direccion1);
             servicio2.setUltimoEstadoServicio(estado2);
             servicio2.setFechaRegistro(new Date());
             servicio2.setFinalizado(Boolean.FALSE);
             servicio2.setTipo(Constantes.TIPO_SERVICIO_ASIGNADO);
             servicio2.setNecesitaAtencion(Boolean.FALSE);
             
             servicio2.setOperador(operador1);
             
             servicioDAO.guardar(servicio2);
            */
             
           //REGISTRAR SERVICIO ASIGNANDO UNIDADES
             logger.info("\n  >>  REGISTRAR ASIGNACION A UN SERVICIO");
             final ServicioBean servicio2=new ServicioBean();
             //servicio2.setGrupoAsignacion(grupo1);
             servicio2.setCliente(cliente1);
             servicio2.setDireccion(direccion1);
             servicio2.setUltimoEstadoServicio(estado2);
             servicio2.setFechaRegistro(new Date());
             servicio2.setFinalizado(Boolean.FALSE);
             servicio2.setTipo(Constantes.TIPO_SERVICIO_ASIGNADO);
             servicio2.setNecesitaAtencion(Boolean.FALSE);
             servicio2.setObservacion("Segundo Servicio");
             servicio2.setOperador(operador1);
             
             servicioDAO.guardar(servicio2);
             
             AsignacionServicioBean asignacion=new AsignacionServicioBean();
             asignacion.setChofer(chofer);
             asignacion.setMovil(movil1);
             asignacion.setServicio(servicio2);
             asignacion.setFechaRegistro(new Date());                          
                                       
             //servicio2.getAsignaciones().add(asignacion);
             
             asignacionServicioDAO.guardar(asignacion);
             
             
             
         //OBTENER SERVICIOS DE UNA MOVIL             
             logger.info("\n  >>  OBTENER SERVICIOS DE UNA MOVIL");
             movilRecuperada=movilDAO.buscar(movil1);
             logger.info("id movil: "+movilRecuperada.getId());
             for(ServicioBean servicioMovil:movilRecuperada.getServicios()){
                 logger.info(" - s: "+servicioMovil.getId()+ " : "+servicioMovil.getUltimoEstadoServicio().getNombre());
             }                  
                  
         
        //REGISTRAR DETALLE SERVICIO
             logger.info("\n  >>  REGISTRAR DETALLE SERVICIO");
             final DetalleServicioBean detalle1=new DetalleServicioBean();
             detalle1.setServicio(servicio1);
             detalle1.setEstadoServicio(estado2);
             detalle1.setFechaRegistro(new Date());
             detalle1.setOrigen(Constantes.ORIGEN_WEB);
             
             detalleServicioDAO.guardar(detalle1);
             
             
        //OBTENER SERVICIOS Y DETALLES DE UNA MOVIL             
             logger.info("\n  >>  OBTENER SERVICIOS Y DETALLES DE UNA MOVIL");
             movilRecuperada=movilDAO.buscar(movil1);
             logger.info("id movil: "+movilRecuperada.getId());
             for(ServicioBean servicioMovil:movilRecuperada.getServicios()){
                 logger.info(" - s: "+servicioMovil.getId()+ " : "+servicioMovil.getUltimoEstadoServicio().getNombre());
                 for(DetalleServicioBean detalle:servicioMovil.getDetallesServicio()){
                     logger.info("   + d: "+detalle.getId()+ " : "+detalle.getEstadoServicio().getNombre());
                 }
             }                  
         
         //REGISTRAR TARIFA
             logger.info("\n  >>  REGISTRAR TARIFA");
             TarifaBean tarifa1=new TarifaBean();
             tarifa1.setZonaOrigen(zona1);
             tarifa1.setZonaDestino(zona2);
             
             tarifaDAO.guardar(tarifa1);
             
        //REGISTRAR TARIFA
             logger.info("\n  >>  REGISTRAR DETALLE TARIFA");
             DetalleTarifaBean detalleTarifa1=new DetalleTarifaBean();
             detalleTarifa1.setDescripcion("T. Dia");
             detalleTarifa1.setTarifa(tarifa1);
             detalleTarifa1.setMonto(4.5);
             
             detalleTarifaDAO.guardar(detalleTarifa1);
             
        //REGISTRAR PUNTO GEOCERCA
             logger.info("\n  >>  REGISTRAR PUNTO GEOCERCA");
             PuntoGeocercaBean puntoGeocerca=new PuntoGeocercaBean();
             puntoGeocerca.setLatitud(15d);
             puntoGeocerca.setLongitud(8d);
             puntoGeocerca.setOrden(1);
             puntoGeocerca.setZona(zona1);
             
             puntoGeocercaDAO.guardar(puntoGeocerca);
       
         
            logger.info("\n  >>  FIN DEL METODO...");
    }

    public void setMovilDAO(MovilDAO movilDAO) {
        this.movilDAO = movilDAO;
    }

    public void setChoferDAO(ChoferDAO choferDAO) {
        this.choferDAO = choferDAO;
    }

    public void setPropietarioDAO(PropietarioDAO propietarioDAO) {
        this.propietarioDAO = propietarioDAO;
    }

    public void setTrackingDAO(TrackingDAO trackingDAO) {
        this.trackingDAO = trackingDAO;
    }

    public void setGrupoDAO(GrupoDAO grupoDAO) {
        this.grupoDAO = grupoDAO;
    }

    public void setMensajeDAO(MensajeDAO mensajeDAO) {
        this.mensajeDAO = mensajeDAO;
    }

    public void setAlertaDAO(AlertaDAO alertaDAO) {
        this.alertaDAO = alertaDAO;
    }

    public void setAlertaEnviadaDAO(AlertaEnviadaDAO alertaEnviadaDAO) {
        this.alertaEnviadaDAO = alertaEnviadaDAO;
    }

    public void setZonaDAO(ZonaDAO zonaDAO) {
        this.zonaDAO = zonaDAO;
    }

    public void setClienteDAO(ClienteDAO clienteDAO) {
        this.clienteDAO = clienteDAO;
    }

    public void setDireccionClienteDAO(DireccionClienteDAO direccionClienteDAO) {
        this.direccionClienteDAO = direccionClienteDAO;
    }

    public void setEstadoDAO(EstadoDAO estadoDAO) {
        this.estadoDAO = estadoDAO;
    }

    public void setServicioDAO(ServicioDAO servicioDAO) {
        this.servicioDAO = servicioDAO;
    }

    public void setDetalleServicioDAO(DetalleServicioDAO detalleServicioDAO) {
        this.detalleServicioDAO = detalleServicioDAO;
    }

    public void setOperadorDAO(OperadorDAO operadorDAO) {
        this.operadorDAO = operadorDAO;
    }

    public void setTarifaDAO(TarifaDAO tarifaDAO) {
        this.tarifaDAO = tarifaDAO;
    }

    public void setDetalleTarifaDAO(DetalleTarifaDAO detalleTarifaDAO) {
        this.detalleTarifaDAO = detalleTarifaDAO;
    }

    public void setPuntoGeocercaDAO(PuntoGeocercaDAO puntoGeocercaDAO) {
        this.puntoGeocercaDAO = puntoGeocercaDAO;
    }

    public void setMarcacionDAO(MarcacionDAO marcacionDAO) {
        this.marcacionDAO = marcacionDAO;
    }
    
    public void setAsignacionServicioDAO(AsignacionServicioDAO asignacionServicioDAO) {
        this.asignacionServicioDAO = asignacionServicioDAO;
    }

    
    
}
